﻿using System.Collections.Generic;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.ContaContabil;

namespace Sinacor.UI.Bovespa.Contabil.Communication.Translator.DataContractToModel
{
    /// <summary>
    /// Translator.DataContractToModel Class - ContaContabil
    /// </summary>
    public class ContaContabil
    {
        #region Métodos Públicos

        /// <summary>
        /// Traduz um contrato de dados do tipo ContaContabilResponse para uma model do tipo ContaContabil.
        /// </summary>
        /// <param name="response">ContaContabilResponse</param>
        /// <returns>Model.ContaContabil</returns>
        public Model.ContaContabil ToContaContabil(ContaContabilResponse response)
        {
            Model.ContaContabil contaContabil = new Model.ContaContabil();

            contaContabil.CodigoResumido = response.CodigoResumido;
            contaContabil.Digito = response.Digito;
            contaContabil.NomeConta = response.NomeConta;
            contaContabil.NumeroConta = response.NumeroConta;

            return contaContabil;
        }

        /// <summary>
        /// Traduz uma lista de contrato de dados do tipo ContaContabilResponse para uma coleção de models do tipo ContaContabil.
        /// </summary>
        /// <param name="responseList">Lista de contrato de dados do tipo ContaContabilResponse</param>
        /// <returns>Coleção de models do tipo Model.ContaContabil</returns>
        public ModelCollection<Model.ContaContabil> ToContaContabil(List<ContaContabilResponse> responseList)
        {
            ModelCollection<Model.ContaContabil> contaContabilList = new ModelCollection<Model.ContaContabil>();

            foreach (ContaContabilResponse response in responseList)
                contaContabilList.Add(this.ToContaContabil(response));

            return contaContabilList;
        }

        #endregion
    }
}